package com.cloud.rou.common.executor;


/**
 * <p></p>custom guava async Executor
 *
 * @author GaoShuangWen
 */
public interface Executor<T> {

    /**
     * excutor way
     *
     * @param request the request
     * @return the response
     */
    T execute(Object... request);

    /**
     * handle the request async and return ExecutorFuture
     * @see ExecutorFuture
     * @param request the request
     * @return the async result
     */
    ExecutorFuture<T> asyncExecute(Object... request);

}
